function CFHistory=CounterFactualHistory(HX,GX,M_Eta,ShockHistory,ShockTag)

% HX                  =   solution.hx;
% GX                  =   solution.gx;
% M_eta               =   solution.M_eta;
% fir_Aux             =   solution.fir_Aux;
% All Shocks, Fitting
TempShockHist       =   ShockHistory;
[YY,XX]             =   SimulHist_1order(HX,GX,M_Eta,TempShockHist);
CFHistory.Full      =   YY;

% Individual Shocks, Counterfactual

for ii=1:length(ShockTag)
    TempShockHist       =   ShockHistory;
    TempShockHist(ii,:) =   zeros(1,size(ShockHistory,2));
    [YY,XX]             =   SimulHist_1order(HX,GX,M_Eta,TempShockHist);
    CFHistory.(ShockTag{ii}) ...
                        =   YY;
end

